﻿namespace KinonekoSoftware.CodariaDB.Documents.Templates
{

    /// <summary>
    /// <see cref="CharacterInstanceTemplateGenerator"/> 类型表示一个政治集团设定的模板创建器。
    /// // TODO:
    /// </summary>
    /// <remarks>
    /// <para>此模板包含的模组有：</para>
    /// <para>1. 基本信息（Basic_Custom）</para>
    /// <para>2. 设卡模组（Modules）</para>
    /// <para>3. 细节（角色）模组（Detail_Character）</para>
    /// <para>4. 细节（个性）模组（Detail_Character_Personality）</para>
    /// <para>5. 细节（装备）模组（Detail_Character_Equipment）</para>
    /// <para>6. 人物关系模组（Relationship_Character）</para>
    /// <para>7. 剧情模组（Story）</para>
    /// </remarks>
    public sealed class CountryInstanceTemplateGenerator : InstanceTemplateGenerator
    {

        protected override void OnInitializeDefinitions(ICollection<DataPartDefinition> collection)
        {
            Define(collection, DataPartType.Basic_Country, 0);
            Define(collection, DataPartType.Modules, 1);
            Define(collection, DataPartType.Detail_Country_Diplomacy, 2);
            Define(collection, DataPartType.Detail_Country_History, 3);
            Define(collection, DataPartType.Detail_Country_Interior, 4);
            Define(collection, DataPartType.Detail_Country_Humanities, 5);
            Define(collection, DataPartType.Detail_Country_Religion, 6);
            Define(collection, DataPartType.Detail_Country_Social, 7);
            Define(collection, DataPartType.Detail_Country_Geography, 8);
            Define(collection, DataPartType.Detail_Country_Military, 9);
            Define(collection, DataPartType.Story, 10);
        }

        /// <summary>
        /// 初始化属性集合。
        /// </summary>
        /// <param name="collection">要初始化的属性集合。</param>
        /// <remarks>
        /// <para>名字的字段由DataPart创建，而非模板自带。</para>
        /// </remarks>
        protected override void OnInitializeProperties(ICollection<CompositeItem> collection)
        {
        }

        public override InstanceType TargetType => InstanceType.PoliticalGroups_Country;
    }
}